home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / ada / adatu200.zip / CHANGESN.ADA < prev    next >
Text File  |  1991-03-25  |  2KB  |  52 lines

  1. -- CHANGESN.ADA   Ver. 2.00   25-MAR-1991   Copyright 1988-1991 John J. Herro
  2. -- Software Innovations Technology
  3. -- 1083 Mandarin Drive NE, Palm Bay, FL  32905-4706   (407)951-0233
  4. --
  5. -- Used to change the serial number in ADA_TUTR.DAT after registering.
  6. --
  7. with TEXT_IO, DIRECT_IO; use TEXT_IO;
  8. procedure CHANGESN is
  9.    subtype BLOCK_SUBTYPE is STRING(1 .. 64);
  10.    package RANDOM_IO is new DIRECT_IO(BLOCK_SUBTYPE); use RANDOM_IO;
  11.    DATA_FILE_NAME : constant STRING := "ADA_TUTR.DAT";
  12.    DATA_FILE      : RANDOM_IO.FILE_TYPE;
  13.    BLOCK          : BLOCK_SUBTYPE;            -- Block read from the data file.
  14.    BLOCK_NUM      : RANDOM_IO.COUNT := 40;      -- Number of the current block.
  15.    PLACE          : INTEGER;                 -- Index to search for "Serial #".
  16.    FOUND          : BOOLEAN := FALSE;         -- True when "Serial #" is found.
  17.    SERIAL_NUM     : STRING(1 .. 5);             -- The serial number, in ASCII.
  18.    INPUT          : STRING(1 .. 6);                     -- Input that you type.
  19.    LEN            : INTEGER;                          -- Length of typed input.
  20.    LEGAL_NOTE     : constant STRING := " Copyright 1988-91 John J. Herro ";
  21.                        -- LEGAL_NOTE isn't used by the program, but it causes
  22.                        -- most compilers to place this string in the .EXE file.
  23. begin
  24.    RANDOM_IO.OPEN(DATA_FILE, MODE => INOUT_FILE, NAME => DATA_FILE_NAME);
  25.    while not FOUND loop
  26.       BLOCK_NUM := BLOCK_NUM + 1;
  27.       READ(FILE => DATA_FILE, ITEM => BLOCK, FROM => BLOCK_NUM);
  28.       PLACE := 0;
  29.       while not FOUND and PLACE <= 50 loop
  30.          PLACE := PLACE + 1;
  31.          FOUND := BLOCK(PLACE .. PLACE + 7) = "Serial #";
  32.       end loop;
  33.    end loop;
  34.    SERIAL_NUM := BLOCK(PLACE + 10 .. PLACE + 14);
  35.    PUT_LINE("Old serial number is " & SERIAL_NUM & ".");
  36.    PUT("New serial number:   ");
  37.    INPUT := SERIAL_NUM & " ";
  38.    GET_LINE(INPUT, LEN);
  39.    NEW_LINE;
  40.    BLOCK(PLACE + 10 .. PLACE + 14) := INPUT(1 .. 5);
  41.    WRITE(FILE => DATA_FILE, ITEM => BLOCK, TO => BLOCK_NUM);
  42.    CLOSE(DATA_FILE);
  43.    PUT_LINE("Serial number changed to " & INPUT(1 .. 5) & ".");
  44. exception
  45.    when RANDOM_IO.NAME_ERROR =>
  46.       PUT("I'm sorry.  The file " & DATA_FILE_NAME);
  47.       PUT_LINE(" seems to be missing.");
  48.    when RANDOM_IO.END_ERROR =>
  49.       PUT("I'm sorry.  I couldn't find a serial number in ");
  50.       PUT_LINE(DATA_FILE_NAME & ".");
  51. end CHANGESN;
  52.